package _17_InnerClass;
/**
 * 静态内部类,可以看做静态变量
 * 
 * 在类体中使用 static 修饰的类是静态内部类
 * 
 * 静态内部类中可以声明成员属性也可以声明静态属性
 * 
 * 但是静态内部类中不能直接访问外部类的成员属性(需要使用外部类对象调用外部类的成员属性)
 * 
 * @author lenovo
 * @Date 2020年7月11日
 * @Time 下午8:14:19
 */
public class OuterClass_02 {
	private static String s1 = "静态变量";
	private String s2 = "成员变量";

	static class InnerClass {
		// 静态变量
		static int i = 1;
		// 成员变量
		int b = 2;

		// 静态方法
		public static void m1() {
			System.out.println(s1);
			// 不能直接调用外部类的成员属性
//			System.out.println(s2);
			// 需要使用外部类对象调用成员属性
			System.out.println(new OuterClass_02().s2);
		}

		// 成员方法
		public void m2() {
			System.out.println(s1);
			// 不能直接调用外部类的成员属性
//			System.out.println(s2);
			// 需要使用外部类对象调用成员属性
			System.out.println(new OuterClass_02().s2);
		}
	}

	public static void main(String[] args) {
		// 访问静态变量
		OuterClass_02.InnerClass.m1();
		InnerClass.m1();

		InnerClass inner = new OuterClass_02.InnerClass();
		InnerClass inner1 = new InnerClass();
		inner.m2();
		inner1.m2();
	}

}
